1. Field
The embodiments are directed generally to angular velocity estimation, and specifically, to angular velocity estimation using a magnetometer and accelerometer.
2. Background Art
A MEMS rate gyroscope is a device that measures angular velocity. A MEMS gyroscope may be a stand-alone device or included in another electronic device as part of integrated circuit included in a micro-chip. Angular velocity can be integrated over time to compute changes in angular orientation. When combined with other sensors that provide an absolute reference for pitch and roll (accelerometer) or yaw (magnetometer), an estimate of absolute angular orientation can be produced.
Gyroscopes are included in electronic devices to quickly and accurately detect changes in electronic device orientation and to enable high quality estimates of angular orientation as it changes Applications can be developed that take advantage of these capabilities to provide useful functionality to end users. An example of an application that relies on angular rotation includes the positioning of a mobile device in a horizontal or vertical orientation to facilitate text entry and web application formatting and display. Another example includes applications, such as video games, that receive as an input the angular velocity and integrated angular orientation of the electronic device as it is manipulated by a user. Another example is an application that uses angular orientation estimates as inputs to a pointing device such as a motion based mouse.
Gyroscopes, however, are power intensive circuits when run on electronic devices. The intensive power consumption is an energy drain on the electronic device, particularly when the electronic device is powered using a re-chargeable power source, such as a battery. Additionally, a power intensive circuit increases an overall cost for using the electronic device.
Therefore, what is needed are systems and methods that generate an estimated angular velocity using efficient integrated circuits and software that have a low code and data footprint and a low CPU load.